// @param {string} img 图片的base64
// @param {int} dir exif获取的方向信息
// @param {function} next 回调方法，返回校正方向后的base64
function imgOnload(img, dir) {
  // console.log(img, dir)
  return new Promise(function(resolve, reject) {
    var image = new Image();
    // reader.readAsArrayBuffer(file)
    image.onload = function() {
      var degree = 0,
        drawWidth, drawHeight, width, height;
      drawWidth = this.naturalWidth;
      drawHeight = this.naturalHeight;
      //以下改变一下图片大小
      var maxSide = Math.max(drawWidth, drawHeight);
      if (maxSide > 512) {
        var minSide = Math.min(drawWidth, drawHeight);
        minSide = minSide / maxSide * 512;
        maxSide = 512;
        if (drawWidth > drawHeight) {
          drawWidth = maxSide;
          drawHeight = minSide;
        } else {
          drawWidth = minSide;
          drawHeight = maxSide;
        }
      }
      var canvas = document.createElement('canvas');
      canvas.width = width = drawWidth;
      canvas.height = height = drawHeight;
      var context = canvas.getContext('2d');
      //判断图片方向，重置canvas大小，确定旋转角度，iphone默认的是home键在右方的横屏拍摄方式
      switch (dir) {
        //iphone横屏拍摄，此时home键在左侧 旋转180度
        case 3:
          degree = 180;
          drawWidth = -width;
          drawHeight = -height;
          break;
          //iphone竖屏拍摄，此时home键在下方(正常拿手机的方向) 顺时针90度
        case 6:
          canvas.width = height;
          canvas.height = width;
          degree = 90;
          drawWidth = width;
          drawHeight = -height;
          break;
          //iphone竖屏拍摄，此时home键在上方 逆时针90度
        case 8:
          canvas.width = height;
          canvas.height = width;
          degree = 270;
          drawWidth = -width;
          drawHeight = height;
          break;
      }
      //使用canvas旋转校正
      context.rotate(degree * Math.PI / 180);
      context.drawImage(this, 0, 0, drawWidth, drawHeight);
      //返回校正图片
      var result = canvas.toDataURL("image/jpeg", .8)
      console.log('canvas result>>>', result)
      resolve(result);
      // next(canvas.toDataURL("image/jpeg", .8));
      // resolve(this.result)
      reject('烧焦的米饭');
    }
    image.src = img;
  })
}

export default imgOnload;